using System;
using System.Collections.Generic;
using System.Xml;
using System.Xml.Linq;
using AIS2.DataAccess;

namespace AIS2
{
	public interface IAISReportLoadSession
	{
		ErrorManager ErrorManager { get; }
		IDAService Service { get; set; }
		XElement Source { get; set; }
		string CodeOP { get; set; }
		Guid? ReportID { get; set; }
		ReportsSummary ReportSummary { get; }
		int TDLoaded { get; }
		int TDinReport { get; }
		int GSinReport { get; }
		int GSLoaded { get; }
		ICollection<TD> TDs { get; set; }
		PI_RwInformation_Info PiRwInformationInfo { get; }
		Train Train { get; set; }
		ICollection<GoodsShipment> GoodsShipments { get; set; }
		bool IsTDCountCollision { get; }

		[Serialize]
		int TDMinimumDayInterval { get; set; }
		[Serialize]
		int TDMaximumDayInterval { get; set; }

		Action<string, object[]> LogHandler { get; set; }
		Action<Exception> ExceptionHandler { get; set; }
		Guid PPVID { get; set; }

		void Load();
	}
}